<!-- HTML header for doxygen 1.8.6-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/xhtml;charset=utf-8" http-equiv="Content-Type"/>
<meta content="IE=9" http-equiv="X-UA-Compatible"/>
<meta content="Doxygen 1.8.13" name="generator"/>
<title>OpenCV: cv::cuda::HostMem Class Reference</title>
<link href="../../opencv.ico" rel="shortcut icon" type="image/x-icon"/>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
<script src="../../jquery.js" type="text/javascript"></script>
<script src="../../dynsections.js" type="text/javascript"></script>
<script src="../../tutorial-utils.js" type="text/javascript"></script>
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
<script src="../../search/searchdata.js" type="text/javascript"></script>
<script src="../../search/search.js" type="text/javascript"></script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
//<![CDATA[
MathJax.Hub.Config(
{
  TeX: {
      Macros: {
          matTT: [ "\\[ \\left|\\begin{array}{ccc} #1 & #2 & #3\\\\ #4 & #5 & #6\\\\ #7 & #8 & #9 \\end{array}\\right| \\]", 9],
          fork: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ \\end{array} \\right.", 4],
          forkthree: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ #5 & \\mbox{#6}\\\\ \\end{array} \\right.", 6],
          forkfour: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ #5 & \\mbox{#6}\\\\ #7 & \\mbox{#8}\\\\ \\end{array} \\right.", 8],
          vecthree: ["\\begin{bmatrix} #1\\\\ #2\\\\ #3 \\end{bmatrix}", 3],
          vecthreethree: ["\\begin{bmatrix} #1 & #2 & #3\\\\ #4 & #5 & #6\\\\ #7 & #8 & #9 \\end{bmatrix}", 9],
          cameramatrix: ["#1 = \\begin{bmatrix} f_x & 0 & c_x\\\\ 0 & f_y & c_y\\\\ 0 & 0 & 1 \\end{bmatrix}", 1],
          distcoeffs: ["(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]]) \\text{ of 4, 5, 8, 12 or 14 elements}"],
          distcoeffsfisheye: ["(k_1, k_2, k_3, k_4)"],
          hdotsfor: ["\\dots", 1],
          mathbbm: ["\\mathbb{#1}", 1],
          bordermatrix: ["\\matrix{#1}", 1]
      }
  }
}
);
//]]>
</script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js" type="text/javascript"></script>
<link href="../../doxygen.css" rel="stylesheet" type="text/css"/>
<link href="../../stylesheet.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<!--#include virtual="/google-search.html"-->
<table cellpadding="0" cellspacing="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="../../opencv-logo-small.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">OpenCV
    <span id="projectnumber">4.5.2</span>
   </div>
   <div id="projectbrief">Open Source Computer Vision</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
</script>
<script src="../../menudata.js" type="text/javascript"></script>
<script src="../../menu.js" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
  initMenu('../../',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow" onkeydown="return searchBox.OnSearchSelectKey(event)" onmouseout="return searchBox.OnSearchSelectHide()" onmouseover="return searchBox.OnSearchSelectShow()">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe frameborder="0" id="MSearchResults" name="MSearchResults" src="javascript:void(0)">
</iframe>
</div>
<div class="navpath" id="nav-path">
  <ul>
<li class="navelem"><a class="el" href="../../d2/d75/namespacecv.html">cv</a></li><li class="navelem"><a class="el" href="../../d1/d1a/namespacecv_1_1cuda.html">cuda</a></li><li class="navelem"><a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html">HostMem</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> |
<a href="#pub-methods">Public Member Functions</a> |
<a href="#pub-static-methods">Static Public Member Functions</a> |
<a href="#pub-attribs">Public Attributes</a> |
<a href="../../d1/dd8/classcv_1_1cuda_1_1HostMem-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">cv::cuda::HostMem Class Reference<div class="ingroups"><a class="el" href="../../d1/d1e/group__cuda.html">CUDA-accelerated Computer Vision</a> » <a class="el" href="../../d7/d05/group__cudacore.html">Core part</a> » <a class="el" href="../../d9/d41/group__cudacore__struct.html">Data Structures</a></div></div>  </div>
</div><!--header-->
<div class="contents">
<p>Class with reference counting wrapping special memory type allocation functions from CUDA.  
 <a href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#details">More...</a></p>
<p><code>#include &lt;opencv2/core/cuda.hpp&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:aa0d69b2aa95680a6b2af6dc4dda44e16"><td align="right" class="memItemLeft" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#aa0d69b2aa95680a6b2af6dc4dda44e16">AllocType</a> { <br/>
  <a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#aa0d69b2aa95680a6b2af6dc4dda44e16a968d788513648797c888aa13e056d6a4">PAGE_LOCKED</a> = 1, 
<br/>
  <a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#aa0d69b2aa95680a6b2af6dc4dda44e16ac5eb57263e17573194ea66ab06b1bdb6">SHARED</a> = 2, 
<br/>
  <a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#aa0d69b2aa95680a6b2af6dc4dda44e16aef6b60397f05650d972d2cf55e3523eb">WRITE_COMBINED</a> = 4
<br/>
 }</td></tr>
<tr class="separator:aa0d69b2aa95680a6b2af6dc4dda44e16"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:abc1d3f04e0f38e97870a944f4cfb6852"><td align="right" class="memItemLeft" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#abc1d3f04e0f38e97870a944f4cfb6852">HostMem</a> (<a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#aa0d69b2aa95680a6b2af6dc4dda44e16">HostMem::AllocType</a> <a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#adafb6e996e9e7a0d6c4696b6a186600e">alloc_type</a>=HostMem::AllocType::PAGE_LOCKED)</td></tr>
<tr class="separator:abc1d3f04e0f38e97870a944f4cfb6852"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:abddf8d1a9db3b9369841e2bf40e4b210"><td align="right" class="memItemLeft" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#abddf8d1a9db3b9369841e2bf40e4b210">HostMem</a> (const <a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html">HostMem</a> &amp;m)</td></tr>
<tr class="separator:abddf8d1a9db3b9369841e2bf40e4b210"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a2b306f27eed3a9acb34ca1142610c4e7"><td align="right" class="memItemLeft" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#a2b306f27eed3a9acb34ca1142610c4e7">HostMem</a> (int <a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#a454a7773e1423302f35819ea7720303f">rows</a>, int <a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#a637b04a3a6e107d9bdb16eba7ca238eb">cols</a>, int <a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#ac55673be0aa82cc6dbe7b17cf2c480ce">type</a>, <a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#aa0d69b2aa95680a6b2af6dc4dda44e16">HostMem::AllocType</a> <a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#adafb6e996e9e7a0d6c4696b6a186600e">alloc_type</a>=HostMem::AllocType::PAGE_LOCKED)</td></tr>
<tr class="separator:a2b306f27eed3a9acb34ca1142610c4e7"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a768d8b14c2db875e6db4f3b8dc7bc884"><td align="right" class="memItemLeft" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#a768d8b14c2db875e6db4f3b8dc7bc884">HostMem</a> (<a class="el" href="../../dc/d84/group__core__basic.html#ga346f563897249351a34549137c8532a0">Size</a> <a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#aa61acd6d1db2ec950221831dc3fe1ca9">size</a>, int <a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#ac55673be0aa82cc6dbe7b17cf2c480ce">type</a>, <a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#aa0d69b2aa95680a6b2af6dc4dda44e16">HostMem::AllocType</a> <a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#adafb6e996e9e7a0d6c4696b6a186600e">alloc_type</a>=HostMem::AllocType::PAGE_LOCKED)</td></tr>
<tr class="separator:a768d8b14c2db875e6db4f3b8dc7bc884"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ae750a078e64922f8d3fc81a8f1edbfb8"><td align="right" class="memItemLeft" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#ae750a078e64922f8d3fc81a8f1edbfb8">HostMem</a> (<a class="el" href="../../dc/d84/group__core__basic.html#ga353a9de602fe76c709e12074a6f362ba">InputArray</a> arr, <a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#aa0d69b2aa95680a6b2af6dc4dda44e16">HostMem::AllocType</a> <a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#adafb6e996e9e7a0d6c4696b6a186600e">alloc_type</a>=HostMem::AllocType::PAGE_LOCKED)</td></tr>
<tr class="memdesc:ae750a078e64922f8d3fc81a8f1edbfb8"><td class="mdescLeft"> </td><td class="mdescRight">creates from host memory with coping data  <a href="#ae750a078e64922f8d3fc81a8f1edbfb8">More...</a><br/></td></tr>
<tr class="separator:ae750a078e64922f8d3fc81a8f1edbfb8"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a866109b3d78afe6a2ea4fc53e156f637"><td align="right" class="memItemLeft" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#a866109b3d78afe6a2ea4fc53e156f637">~HostMem</a> ()</td></tr>
<tr class="separator:a866109b3d78afe6a2ea4fc53e156f637"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a0de01702b003773e10207c0de0bf2730"><td align="right" class="memItemLeft" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#a0de01702b003773e10207c0de0bf2730">channels</a> () const</td></tr>
<tr class="separator:a0de01702b003773e10207c0de0bf2730"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a29b76f344d85d77b4c51478cfebbbd28"><td align="right" class="memItemLeft" valign="top"><a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html">HostMem</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#a29b76f344d85d77b4c51478cfebbbd28">clone</a> () const</td></tr>
<tr class="memdesc:a29b76f344d85d77b4c51478cfebbbd28"><td class="mdescLeft"> </td><td class="mdescRight">returns deep copy of the matrix, i.e. the data is copied  <a href="#a29b76f344d85d77b4c51478cfebbbd28">More...</a><br/></td></tr>
<tr class="separator:a29b76f344d85d77b4c51478cfebbbd28"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a62eea66ac1a181eeeb10a2335f3bd4bd"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#a62eea66ac1a181eeeb10a2335f3bd4bd">create</a> (int <a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#a454a7773e1423302f35819ea7720303f">rows</a>, int <a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#a637b04a3a6e107d9bdb16eba7ca238eb">cols</a>, int <a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#ac55673be0aa82cc6dbe7b17cf2c480ce">type</a>)</td></tr>
<tr class="memdesc:a62eea66ac1a181eeeb10a2335f3bd4bd"><td class="mdescLeft"> </td><td class="mdescRight">allocates new matrix data unless the matrix already has specified size and type.  <a href="#a62eea66ac1a181eeeb10a2335f3bd4bd">More...</a><br/></td></tr>
<tr class="separator:a62eea66ac1a181eeeb10a2335f3bd4bd"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a451a57a38885d605a95b4c965dd17ea7"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#a451a57a38885d605a95b4c965dd17ea7">create</a> (<a class="el" href="../../dc/d84/group__core__basic.html#ga346f563897249351a34549137c8532a0">Size</a> <a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#aa61acd6d1db2ec950221831dc3fe1ca9">size</a>, int <a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#ac55673be0aa82cc6dbe7b17cf2c480ce">type</a>)</td></tr>
<tr class="separator:a451a57a38885d605a95b4c965dd17ea7"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a6444e4aa55f0c4cd6fcba072763106ff"><td align="right" class="memItemLeft" valign="top"><a class="el" href="../../d0/d60/classcv_1_1cuda_1_1GpuMat.html">GpuMat</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#a6444e4aa55f0c4cd6fcba072763106ff">createGpuMatHeader</a> () const</td></tr>
<tr class="memdesc:a6444e4aa55f0c4cd6fcba072763106ff"><td class="mdescLeft"> </td><td class="mdescRight">Maps CPU memory to GPU address space and creates the <a class="el" href="../../d0/d60/classcv_1_1cuda_1_1GpuMat.html" title="Base storage class for GPU memory with reference counting. ">cuda::GpuMat</a> header without reference counting for it.  <a href="#a6444e4aa55f0c4cd6fcba072763106ff">More...</a><br/></td></tr>
<tr class="separator:a6444e4aa55f0c4cd6fcba072763106ff"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a017b175a89135b3dd04c5825913e6b87"><td align="right" class="memItemLeft" valign="top"><a class="el" href="../../d3/d63/classcv_1_1Mat.html">Mat</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#a017b175a89135b3dd04c5825913e6b87">createMatHeader</a> () const</td></tr>
<tr class="memdesc:a017b175a89135b3dd04c5825913e6b87"><td class="mdescLeft"> </td><td class="mdescRight">returns matrix header with disabled reference counting for <a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html" title="Class with reference counting wrapping special memory type allocation functions from CUDA...">HostMem</a> data.  <a href="#a017b175a89135b3dd04c5825913e6b87">More...</a><br/></td></tr>
<tr class="separator:a017b175a89135b3dd04c5825913e6b87"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a1cb85c2b9f858bbc892b1dd282eba3c4"><td align="right" class="memItemLeft" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#a1cb85c2b9f858bbc892b1dd282eba3c4">depth</a> () const</td></tr>
<tr class="separator:a1cb85c2b9f858bbc892b1dd282eba3c4"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:af4d2f52deeacd51b5ccd07759123e0f0"><td align="right" class="memItemLeft" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#af4d2f52deeacd51b5ccd07759123e0f0">elemSize</a> () const</td></tr>
<tr class="separator:af4d2f52deeacd51b5ccd07759123e0f0"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a350f03863027be4851f1b21ae8514bab"><td align="right" class="memItemLeft" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#a350f03863027be4851f1b21ae8514bab">elemSize1</a> () const</td></tr>
<tr class="separator:a350f03863027be4851f1b21ae8514bab"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:afe92b26dbd1a2a1d718504dfb24c1866"><td align="right" class="memItemLeft" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#afe92b26dbd1a2a1d718504dfb24c1866">empty</a> () const</td></tr>
<tr class="separator:afe92b26dbd1a2a1d718504dfb24c1866"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ad091db7d7ddc0e484d2556cf36b8e0af"><td align="right" class="memItemLeft" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#ad091db7d7ddc0e484d2556cf36b8e0af">isContinuous</a> () const</td></tr>
<tr class="separator:ad091db7d7ddc0e484d2556cf36b8e0af"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a086c7947f5c106c9b238ba9dcbcb2f1c"><td align="right" class="memItemLeft" valign="top"><a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html">HostMem</a> &amp; </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#a086c7947f5c106c9b238ba9dcbcb2f1c">operator=</a> (const <a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html">HostMem</a> &amp;m)</td></tr>
<tr class="separator:a086c7947f5c106c9b238ba9dcbcb2f1c"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a924b94dc7a70dd17d8c38e0de48ab827"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#a924b94dc7a70dd17d8c38e0de48ab827">release</a> ()</td></tr>
<tr class="memdesc:a924b94dc7a70dd17d8c38e0de48ab827"><td class="mdescLeft"> </td><td class="mdescRight">decrements reference counter and released memory if needed.  <a href="#a924b94dc7a70dd17d8c38e0de48ab827">More...</a><br/></td></tr>
<tr class="separator:a924b94dc7a70dd17d8c38e0de48ab827"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a31e3165f8fc1a4863d7a67a973f5bd68"><td align="right" class="memItemLeft" valign="top"><a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html">HostMem</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#a31e3165f8fc1a4863d7a67a973f5bd68">reshape</a> (int cn, int <a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#a454a7773e1423302f35819ea7720303f">rows</a>=0) const</td></tr>
<tr class="separator:a31e3165f8fc1a4863d7a67a973f5bd68"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aa61acd6d1db2ec950221831dc3fe1ca9"><td align="right" class="memItemLeft" valign="top"><a class="el" href="../../dc/d84/group__core__basic.html#ga346f563897249351a34549137c8532a0">Size</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#aa61acd6d1db2ec950221831dc3fe1ca9">size</a> () const</td></tr>
<tr class="separator:aa61acd6d1db2ec950221831dc3fe1ca9"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ab51be367c23f9976389efd3eccbded97"><td align="right" class="memItemLeft" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#ab51be367c23f9976389efd3eccbded97">step1</a> () const</td></tr>
<tr class="separator:ab51be367c23f9976389efd3eccbded97"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a6eabc73d59936b87292125e17415b053"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#a6eabc73d59936b87292125e17415b053">swap</a> (<a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html">HostMem</a> &amp;b)</td></tr>
<tr class="memdesc:a6eabc73d59936b87292125e17415b053"><td class="mdescLeft"> </td><td class="mdescRight">swaps with other smart pointer  <a href="#a6eabc73d59936b87292125e17415b053">More...</a><br/></td></tr>
<tr class="separator:a6eabc73d59936b87292125e17415b053"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ac55673be0aa82cc6dbe7b17cf2c480ce"><td align="right" class="memItemLeft" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#ac55673be0aa82cc6dbe7b17cf2c480ce">type</a> () const</td></tr>
<tr class="separator:ac55673be0aa82cc6dbe7b17cf2c480ce"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:af95883b469bc2814a3434ade4c17baa0"><td align="right" class="memItemLeft" valign="top">static <a class="el" href="../../df/d4c/classcv_1_1MatAllocator.html">MatAllocator</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#af95883b469bc2814a3434ade4c17baa0">getAllocator</a> (<a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#aa0d69b2aa95680a6b2af6dc4dda44e16">HostMem::AllocType</a> <a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#adafb6e996e9e7a0d6c4696b6a186600e">alloc_type</a>=HostMem::AllocType::PAGE_LOCKED)</td></tr>
<tr class="separator:af95883b469bc2814a3434ade4c17baa0"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:adafb6e996e9e7a0d6c4696b6a186600e"><td align="right" class="memItemLeft" valign="top"><a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#aa0d69b2aa95680a6b2af6dc4dda44e16">AllocType</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#adafb6e996e9e7a0d6c4696b6a186600e">alloc_type</a></td></tr>
<tr class="separator:adafb6e996e9e7a0d6c4696b6a186600e"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a637b04a3a6e107d9bdb16eba7ca238eb"><td align="right" class="memItemLeft" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#a637b04a3a6e107d9bdb16eba7ca238eb">cols</a></td></tr>
<tr class="separator:a637b04a3a6e107d9bdb16eba7ca238eb"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a22e267551b43057c9371aa927cc34ee9"><td align="right" class="memItemLeft" valign="top"><a class="el" href="../../d1/d1b/group__core__hal__interface.html#ga65f85814a8290f9797005d3b28e7e5fc">uchar</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#a22e267551b43057c9371aa927cc34ee9">data</a></td></tr>
<tr class="separator:a22e267551b43057c9371aa927cc34ee9"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a895b08a1958e4d6a73bd5410a7b86c3b"><td align="right" class="memItemLeft" valign="top">const <a class="el" href="../../d1/d1b/group__core__hal__interface.html#ga65f85814a8290f9797005d3b28e7e5fc">uchar</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#a895b08a1958e4d6a73bd5410a7b86c3b">dataend</a></td></tr>
<tr class="separator:a895b08a1958e4d6a73bd5410a7b86c3b"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a5e62aeda0a11c82ed104ad2c0475e1fb"><td align="right" class="memItemLeft" valign="top"><a class="el" href="../../d1/d1b/group__core__hal__interface.html#ga65f85814a8290f9797005d3b28e7e5fc">uchar</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#a5e62aeda0a11c82ed104ad2c0475e1fb">datastart</a></td></tr>
<tr class="separator:a5e62aeda0a11c82ed104ad2c0475e1fb"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:af81a4ce11a420f2905f7666d5545c674"><td align="right" class="memItemLeft" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#af81a4ce11a420f2905f7666d5545c674">flags</a></td></tr>
<tr class="separator:af81a4ce11a420f2905f7666d5545c674"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ae3e7ec959e9a6a3142d55f1896be1b6e"><td align="right" class="memItemLeft" valign="top">int * </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#ae3e7ec959e9a6a3142d55f1896be1b6e">refcount</a></td></tr>
<tr class="separator:ae3e7ec959e9a6a3142d55f1896be1b6e"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a454a7773e1423302f35819ea7720303f"><td align="right" class="memItemLeft" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#a454a7773e1423302f35819ea7720303f">rows</a></td></tr>
<tr class="separator:a454a7773e1423302f35819ea7720303f"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a7a34062e40db102086a987edc7f5858c"><td align="right" class="memItemLeft" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#a7a34062e40db102086a987edc7f5858c">step</a></td></tr>
<tr class="separator:a7a34062e40db102086a987edc7f5858c"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a id="details" name="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Class with reference counting wrapping special memory type allocation functions from CUDA. </p>
<p>Its interface is also Mat-like but with additional memory type parameters.</p>
<ul>
<li><b>PAGE_LOCKED</b> sets a page locked memory type used commonly for fast and asynchronous uploading/downloading data from/to GPU.</li>
<li><b>SHARED</b> specifies a zero copy memory allocation that enables mapping the host memory to GPU address space, if supported.</li>
<li><b>WRITE_COMBINED</b> sets the write combined buffer that is not cached by CPU. Such buffers are used to supply GPU with data when GPU only reads it. The advantage is a better CPU cache utilization.</li>
</ul>
<dl class="section note"><dt>Note</dt><dd>Allocation size of such memory types is usually limited. For more details, see <em>CUDA 2.2 Pinned Memory APIs</em> document or <em>CUDA C Programming Guide</em>. </dd></dl>
</div><h2 class="groupheader">Member Enumeration Documentation</h2>
<a id="aa0d69b2aa95680a6b2af6dc4dda44e16"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa0d69b2aa95680a6b2af6dc4dda44e16">◆ </a></span>AllocType</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#aa0d69b2aa95680a6b2af6dc4dda44e16">cv::cuda::HostMem::AllocType</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="aa0d69b2aa95680a6b2af6dc4dda44e16a968d788513648797c888aa13e056d6a4"></a>PAGE_LOCKED </td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="aa0d69b2aa95680a6b2af6dc4dda44e16ac5eb57263e17573194ea66ab06b1bdb6"></a>SHARED </td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="aa0d69b2aa95680a6b2af6dc4dda44e16aef6b60397f05650d972d2cf55e3523eb"></a>WRITE_COMBINED </td><td class="fielddoc"></td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="abc1d3f04e0f38e97870a944f4cfb6852"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abc1d3f04e0f38e97870a944f4cfb6852">◆ </a></span>HostMem() <span class="overload">[1/5]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">cv::cuda::HostMem::HostMem </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#aa0d69b2aa95680a6b2af6dc4dda44e16">HostMem::AllocType</a> </td>
          <td class="paramname"><em>alloc_type</em> = <code>HostMem::AllocType::PAGE_LOCKED</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">explicit</span></span>  </td>
  </tr>
</table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>&lt;cuda_HostMem object&gt;</td><td>=</td><td>cv.cuda_HostMem(</td><td class="paramname">[, alloc_type]</td><td>)</td></tr><tr><td style="width: 20px;"></td><td>&lt;cuda_HostMem object&gt;</td><td>=</td><td>cv.cuda_HostMem(</td><td class="paramname">rows, cols, type[, alloc_type]</td><td>)</td></tr><tr><td style="width: 20px;"></td><td>&lt;cuda_HostMem object&gt;</td><td>=</td><td>cv.cuda_HostMem(</td><td class="paramname">size, type[, alloc_type]</td><td>)</td></tr><tr><td style="width: 20px;"></td><td>&lt;cuda_HostMem object&gt;</td><td>=</td><td>cv.cuda_HostMem(</td><td class="paramname">arr[, alloc_type]</td><td>)</td></tr></table>
</div><div class="memdoc">
</div>
</div>
<a id="abddf8d1a9db3b9369841e2bf40e4b210"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abddf8d1a9db3b9369841e2bf40e4b210">◆ </a></span>HostMem() <span class="overload">[2/5]</span></h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">cv::cuda::HostMem::HostMem </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html">HostMem</a> &amp; </td>
          <td class="paramname"><em>m</em></td><td>)</td>
          <td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>&lt;cuda_HostMem object&gt;</td><td>=</td><td>cv.cuda_HostMem(</td><td class="paramname">[, alloc_type]</td><td>)</td></tr><tr><td style="width: 20px;"></td><td>&lt;cuda_HostMem object&gt;</td><td>=</td><td>cv.cuda_HostMem(</td><td class="paramname">rows, cols, type[, alloc_type]</td><td>)</td></tr><tr><td style="width: 20px;"></td><td>&lt;cuda_HostMem object&gt;</td><td>=</td><td>cv.cuda_HostMem(</td><td class="paramname">size, type[, alloc_type]</td><td>)</td></tr><tr><td style="width: 20px;"></td><td>&lt;cuda_HostMem object&gt;</td><td>=</td><td>cv.cuda_HostMem(</td><td class="paramname">arr[, alloc_type]</td><td>)</td></tr></table>
</div><div class="memdoc">
</div>
</div>
<a id="a2b306f27eed3a9acb34ca1142610c4e7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2b306f27eed3a9acb34ca1142610c4e7">◆ </a></span>HostMem() <span class="overload">[3/5]</span></h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">cv::cuda::HostMem::HostMem </td>
          <td>(</td>
          <td class="paramtype">int </td>
          <td class="paramname"><em>rows</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int </td>
          <td class="paramname"><em>cols</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int </td>
          <td class="paramname"><em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#aa0d69b2aa95680a6b2af6dc4dda44e16">HostMem::AllocType</a> </td>
          <td class="paramname"><em>alloc_type</em> = <code>HostMem::AllocType::PAGE_LOCKED</code> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>&lt;cuda_HostMem object&gt;</td><td>=</td><td>cv.cuda_HostMem(</td><td class="paramname">[, alloc_type]</td><td>)</td></tr><tr><td style="width: 20px;"></td><td>&lt;cuda_HostMem object&gt;</td><td>=</td><td>cv.cuda_HostMem(</td><td class="paramname">rows, cols, type[, alloc_type]</td><td>)</td></tr><tr><td style="width: 20px;"></td><td>&lt;cuda_HostMem object&gt;</td><td>=</td><td>cv.cuda_HostMem(</td><td class="paramname">size, type[, alloc_type]</td><td>)</td></tr><tr><td style="width: 20px;"></td><td>&lt;cuda_HostMem object&gt;</td><td>=</td><td>cv.cuda_HostMem(</td><td class="paramname">arr[, alloc_type]</td><td>)</td></tr></table>
</div><div class="memdoc">
</div>
</div>
<a id="a768d8b14c2db875e6db4f3b8dc7bc884"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a768d8b14c2db875e6db4f3b8dc7bc884">◆ </a></span>HostMem() <span class="overload">[4/5]</span></h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">cv::cuda::HostMem::HostMem </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../dc/d84/group__core__basic.html#ga346f563897249351a34549137c8532a0">Size</a> </td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int </td>
          <td class="paramname"><em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#aa0d69b2aa95680a6b2af6dc4dda44e16">HostMem::AllocType</a> </td>
          <td class="paramname"><em>alloc_type</em> = <code>HostMem::AllocType::PAGE_LOCKED</code> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>&lt;cuda_HostMem object&gt;</td><td>=</td><td>cv.cuda_HostMem(</td><td class="paramname">[, alloc_type]</td><td>)</td></tr><tr><td style="width: 20px;"></td><td>&lt;cuda_HostMem object&gt;</td><td>=</td><td>cv.cuda_HostMem(</td><td class="paramname">rows, cols, type[, alloc_type]</td><td>)</td></tr><tr><td style="width: 20px;"></td><td>&lt;cuda_HostMem object&gt;</td><td>=</td><td>cv.cuda_HostMem(</td><td class="paramname">size, type[, alloc_type]</td><td>)</td></tr><tr><td style="width: 20px;"></td><td>&lt;cuda_HostMem object&gt;</td><td>=</td><td>cv.cuda_HostMem(</td><td class="paramname">arr[, alloc_type]</td><td>)</td></tr></table>
</div><div class="memdoc">
</div>
</div>
<a id="ae750a078e64922f8d3fc81a8f1edbfb8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae750a078e64922f8d3fc81a8f1edbfb8">◆ </a></span>HostMem() <span class="overload">[5/5]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">cv::cuda::HostMem::HostMem </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../dc/d84/group__core__basic.html#ga353a9de602fe76c709e12074a6f362ba">InputArray</a> </td>
          <td class="paramname"><em>arr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#aa0d69b2aa95680a6b2af6dc4dda44e16">HostMem::AllocType</a> </td>
          <td class="paramname"><em>alloc_type</em> = <code>HostMem::AllocType::PAGE_LOCKED</code> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">explicit</span></span>  </td>
  </tr>
</table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>&lt;cuda_HostMem object&gt;</td><td>=</td><td>cv.cuda_HostMem(</td><td class="paramname">[, alloc_type]</td><td>)</td></tr><tr><td style="width: 20px;"></td><td>&lt;cuda_HostMem object&gt;</td><td>=</td><td>cv.cuda_HostMem(</td><td class="paramname">rows, cols, type[, alloc_type]</td><td>)</td></tr><tr><td style="width: 20px;"></td><td>&lt;cuda_HostMem object&gt;</td><td>=</td><td>cv.cuda_HostMem(</td><td class="paramname">size, type[, alloc_type]</td><td>)</td></tr><tr><td style="width: 20px;"></td><td>&lt;cuda_HostMem object&gt;</td><td>=</td><td>cv.cuda_HostMem(</td><td class="paramname">arr[, alloc_type]</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>creates from host memory with coping data </p>
</div>
</div>
<a id="a866109b3d78afe6a2ea4fc53e156f637"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a866109b3d78afe6a2ea4fc53e156f637">◆ </a></span>~HostMem()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">cv::cuda::HostMem::~HostMem </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a0de01702b003773e10207c0de0bf2730"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0de01702b003773e10207c0de0bf2730">◆ </a></span>channels()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int cv::cuda::HostMem::channels </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.cuda_HostMem.channels(</td><td class="paramname"></td><td>)</td></tr></table>
</div><div class="memdoc">
</div>
</div>
<a id="a29b76f344d85d77b4c51478cfebbbd28"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a29b76f344d85d77b4c51478cfebbbd28">◆ </a></span>clone()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html">HostMem</a> cv::cuda::HostMem::clone </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.cuda_HostMem.clone(</td><td class="paramname"></td><td>)</td></tr></table>
</div><div class="memdoc">
<p>returns deep copy of the matrix, i.e. the data is copied </p>
</div>
</div>
<a id="a62eea66ac1a181eeeb10a2335f3bd4bd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a62eea66ac1a181eeeb10a2335f3bd4bd">◆ </a></span>create() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::cuda::HostMem::create </td>
          <td>(</td>
          <td class="paramtype">int </td>
          <td class="paramname"><em>rows</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int </td>
          <td class="paramname"><em>cols</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int </td>
          <td class="paramname"><em>type</em> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>None</td><td>=</td><td>cv.cuda_HostMem.create(</td><td class="paramname">rows, cols, type</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>allocates new matrix data unless the matrix already has specified size and type. </p>
</div>
</div>
<a id="a451a57a38885d605a95b4c965dd17ea7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a451a57a38885d605a95b4c965dd17ea7">◆ </a></span>create() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::cuda::HostMem::create </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../dc/d84/group__core__basic.html#ga346f563897249351a34549137c8532a0">Size</a> </td>
          <td class="paramname"><em>size</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int </td>
          <td class="paramname"><em>type</em> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>None</td><td>=</td><td>cv.cuda_HostMem.create(</td><td class="paramname">rows, cols, type</td><td>)</td></tr></table>
</div><div class="memdoc">
</div>
</div>
<a id="a6444e4aa55f0c4cd6fcba072763106ff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6444e4aa55f0c4cd6fcba072763106ff">◆ </a></span>createGpuMatHeader()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../d0/d60/classcv_1_1cuda_1_1GpuMat.html">GpuMat</a> cv::cuda::HostMem::createGpuMatHeader </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Maps CPU memory to GPU address space and creates the <a class="el" href="../../d0/d60/classcv_1_1cuda_1_1GpuMat.html" title="Base storage class for GPU memory with reference counting. ">cuda::GpuMat</a> header without reference counting for it. </p>
<p>This can be done only if memory was allocated with the SHARED flag and if it is supported by the hardware. Laptops often share video and CPU memory, so address spaces can be mapped, which eliminates an extra copy. </p>
</div>
</div>
<a id="a017b175a89135b3dd04c5825913e6b87"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a017b175a89135b3dd04c5825913e6b87">◆ </a></span>createMatHeader()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../d3/d63/classcv_1_1Mat.html">Mat</a> cv::cuda::HostMem::createMatHeader </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.cuda_HostMem.createMatHeader(</td><td class="paramname"></td><td>)</td></tr></table>
</div><div class="memdoc">
<p>returns matrix header with disabled reference counting for <a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html" title="Class with reference counting wrapping special memory type allocation functions from CUDA...">HostMem</a> data. </p>
</div>
</div>
<a id="a1cb85c2b9f858bbc892b1dd282eba3c4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1cb85c2b9f858bbc892b1dd282eba3c4">◆ </a></span>depth()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int cv::cuda::HostMem::depth </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.cuda_HostMem.depth(</td><td class="paramname"></td><td>)</td></tr></table>
</div><div class="memdoc">
</div>
</div>
<a id="af4d2f52deeacd51b5ccd07759123e0f0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af4d2f52deeacd51b5ccd07759123e0f0">◆ </a></span>elemSize()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t cv::cuda::HostMem::elemSize </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.cuda_HostMem.elemSize(</td><td class="paramname"></td><td>)</td></tr></table>
</div><div class="memdoc">
</div>
</div>
<a id="a350f03863027be4851f1b21ae8514bab"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a350f03863027be4851f1b21ae8514bab">◆ </a></span>elemSize1()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t cv::cuda::HostMem::elemSize1 </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.cuda_HostMem.elemSize1(</td><td class="paramname"></td><td>)</td></tr></table>
</div><div class="memdoc">
</div>
</div>
<a id="afe92b26dbd1a2a1d718504dfb24c1866"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afe92b26dbd1a2a1d718504dfb24c1866">◆ </a></span>empty()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool cv::cuda::HostMem::empty </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.cuda_HostMem.empty(</td><td class="paramname"></td><td>)</td></tr></table>
</div><div class="memdoc">
</div>
</div>
<a id="af95883b469bc2814a3434ade4c17baa0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af95883b469bc2814a3434ade4c17baa0">◆ </a></span>getAllocator()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="../../df/d4c/classcv_1_1MatAllocator.html">MatAllocator</a>* cv::cuda::HostMem::getAllocator </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#aa0d69b2aa95680a6b2af6dc4dda44e16">HostMem::AllocType</a> </td>
          <td class="paramname"><em>alloc_type</em> = <code>HostMem::AllocType::PAGE_LOCKED</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ad091db7d7ddc0e484d2556cf36b8e0af"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad091db7d7ddc0e484d2556cf36b8e0af">◆ </a></span>isContinuous()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool cv::cuda::HostMem::isContinuous </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.cuda_HostMem.isContinuous(</td><td class="paramname"></td><td>)</td></tr></table>
</div><div class="memdoc">
</div>
</div>
<a id="a086c7947f5c106c9b238ba9dcbcb2f1c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a086c7947f5c106c9b238ba9dcbcb2f1c">◆ </a></span>operator=()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html">HostMem</a>&amp; cv::cuda::HostMem::operator= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html">HostMem</a> &amp; </td>
          <td class="paramname"><em>m</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
</div>
</div>
<a id="a924b94dc7a70dd17d8c38e0de48ab827"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a924b94dc7a70dd17d8c38e0de48ab827">◆ </a></span>release()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::cuda::HostMem::release </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>decrements reference counter and released memory if needed. </p>
</div>
</div>
<a id="a31e3165f8fc1a4863d7a67a973f5bd68"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a31e3165f8fc1a4863d7a67a973f5bd68">◆ </a></span>reshape()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html">HostMem</a> cv::cuda::HostMem::reshape </td>
          <td>(</td>
          <td class="paramtype">int </td>
          <td class="paramname"><em>cn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int </td>
          <td class="paramname"><em>rows</em> = <code>0</code> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.cuda_HostMem.reshape(</td><td class="paramname">cn[, rows]</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>creates alternative <a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html" title="Class with reference counting wrapping special memory type allocation functions from CUDA...">HostMem</a> header for the same data, with different number of channels and/or different number of rows </p>
</div>
</div>
<a id="aa61acd6d1db2ec950221831dc3fe1ca9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa61acd6d1db2ec950221831dc3fe1ca9">◆ </a></span>size()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../dc/d84/group__core__basic.html#ga346f563897249351a34549137c8532a0">Size</a> cv::cuda::HostMem::size </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.cuda_HostMem.size(</td><td class="paramname"></td><td>)</td></tr></table>
</div><div class="memdoc">
</div>
</div>
<a id="ab51be367c23f9976389efd3eccbded97"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab51be367c23f9976389efd3eccbded97">◆ </a></span>step1()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t cv::cuda::HostMem::step1 </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.cuda_HostMem.step1(</td><td class="paramname"></td><td>)</td></tr></table>
</div><div class="memdoc">
</div>
</div>
<a id="a6eabc73d59936b87292125e17415b053"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6eabc73d59936b87292125e17415b053">◆ </a></span>swap()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::cuda::HostMem::swap </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html">HostMem</a> &amp; </td>
          <td class="paramname"><em>b</em></td><td>)</td>
          <td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>None</td><td>=</td><td>cv.cuda_HostMem.swap(</td><td class="paramname">b</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>swaps with other smart pointer </p>
</div>
</div>
<a id="ac55673be0aa82cc6dbe7b17cf2c480ce"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac55673be0aa82cc6dbe7b17cf2c480ce">◆ </a></span>type()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int cv::cuda::HostMem::type </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.cuda_HostMem.type(</td><td class="paramname"></td><td>)</td></tr></table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="adafb6e996e9e7a0d6c4696b6a186600e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adafb6e996e9e7a0d6c4696b6a186600e">◆ </a></span>alloc_type</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../d0/d44/classcv_1_1cuda_1_1HostMem.html#aa0d69b2aa95680a6b2af6dc4dda44e16">AllocType</a> cv::cuda::HostMem::alloc_type</td>
        </tr>
      </table>
</div><div class="memdoc">
</div>
</div>
<a id="a637b04a3a6e107d9bdb16eba7ca238eb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a637b04a3a6e107d9bdb16eba7ca238eb">◆ </a></span>cols</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int cv::cuda::HostMem::cols</td>
        </tr>
      </table>
</div><div class="memdoc">
</div>
</div>
<a id="a22e267551b43057c9371aa927cc34ee9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a22e267551b43057c9371aa927cc34ee9">◆ </a></span>data</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../d1/d1b/group__core__hal__interface.html#ga65f85814a8290f9797005d3b28e7e5fc">uchar</a>* cv::cuda::HostMem::data</td>
        </tr>
      </table>
</div><div class="memdoc">
</div>
</div>
<a id="a895b08a1958e4d6a73bd5410a7b86c3b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a895b08a1958e4d6a73bd5410a7b86c3b">◆ </a></span>dataend</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="../../d1/d1b/group__core__hal__interface.html#ga65f85814a8290f9797005d3b28e7e5fc">uchar</a>* cv::cuda::HostMem::dataend</td>
        </tr>
      </table>
</div><div class="memdoc">
</div>
</div>
<a id="a5e62aeda0a11c82ed104ad2c0475e1fb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5e62aeda0a11c82ed104ad2c0475e1fb">◆ </a></span>datastart</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../d1/d1b/group__core__hal__interface.html#ga65f85814a8290f9797005d3b28e7e5fc">uchar</a>* cv::cuda::HostMem::datastart</td>
        </tr>
      </table>
</div><div class="memdoc">
</div>
</div>
<a id="af81a4ce11a420f2905f7666d5545c674"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af81a4ce11a420f2905f7666d5545c674">◆ </a></span>flags</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int cv::cuda::HostMem::flags</td>
        </tr>
      </table>
</div><div class="memdoc">
</div>
</div>
<a id="ae3e7ec959e9a6a3142d55f1896be1b6e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae3e7ec959e9a6a3142d55f1896be1b6e">◆ </a></span>refcount</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int* cv::cuda::HostMem::refcount</td>
        </tr>
      </table>
</div><div class="memdoc">
</div>
</div>
<a id="a454a7773e1423302f35819ea7720303f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a454a7773e1423302f35819ea7720303f">◆ </a></span>rows</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int cv::cuda::HostMem::rows</td>
        </tr>
      </table>
</div><div class="memdoc">
</div>
</div>
<a id="a7a34062e40db102086a987edc7f5858c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7a34062e40db102086a987edc7f5858c">◆ </a></span>step</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">size_t cv::cuda::HostMem::step</td>
        </tr>
      </table>
</div><div class="memdoc">
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>opencv2/core/<a class="el" href="../../d8/dd1/modules_2core_2include_2opencv2_2core_2cuda_8hpp.html">cuda.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- HTML footer for doxygen 1.8.6-->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Apr 2 2021 11:36:44 for OpenCV by  <a href="http://www.doxygen.org/index.html">
<img alt="doxygen" class="footer" src="../../doxygen.png"/>
</a> 1.8.13
</small></address>
<script type="text/javascript">
//<![CDATA[
addTutorialsButtons();
//]]>
</script>
</body>
</html>
